package com.cxl.parser.grab;

import java.util.List;

import org.htmlparser.NodeFilter;
import org.htmlparser.Parser;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;

import com.cxl.price.bean.Good;

/**
 * 信息抓取接口
 * @author Administrator
 *
 */
public interface GrabInfo {
	
	
	
	public Parser getParser(String url) throws ParserException ;
	
	
	/**
	 * 获得商店商品编码
	 * @param url
	 * @return
	 */
	public String getShopID();
	
	/**
	 * 获得品牌
	 * @param htlmNodeList
	 * @return
	 */
	
	public String getTitle();
	
	/**
	 * 获得品牌
	 * @param htlmNodeList
	 * @return
	 */

	public String getBrand();
	
	/**
	 * 获得型号
	 * @param htlmNodeList
	 * @return
	 */
	public String getXingHao();
	
	/**
	 * 抓取图片地址
	 * @return
	 */
	public String getImgHref();
	/**
	 * 抓取主要内容
	 * @return
	 */
	
	/**
	 * 抓取其他图片地址
	 * @return
	 */
	public List<String> getOtherImgsHref() throws ParserException ;
	/**
	 * 抓取主要内容
	 * @return
	 */
	
	public String getContent(); 
	/**
	 * 搜索商品页的 所有商品链接地址
	 * @return
	 */
	public List<Good> searchGoodsUrl(NodeList nodelisthtml);
	/**
	 * 获得下一页url
	 * @param url
	 * @return
	 */
	public String getNextUrl(NodeList  htmlNodeList);
	/**
	 * 搜索商品价格
	 * @param url
	 * @return
	 */
	public Double getPrice();
	
	/**
	 * 得到url所有下一页商品的地址
	 * @param url
	 * @return
	 */
	public List<Good> getAllNextGoodsUrl() throws ParserException ;
	
	/**
	 * 判断地址的合法性
	 * @return
	 */
	public boolean isExists(String url);
	
	
	/**
	 * 根据过滤器，node大小 获得相关需要的节点信息
	 * @param url
	 * @param filter
	 * @param num -1:根据node大小返回;1:返回1个node;other:返回指定数目的 前提是other数量不能大于实际size
	 * @return
	 */
	public NodeList getNodesByFilter(NodeList nodelist,NodeFilter filter,int num) ;
	
	public String getHtmlCode(String url);
	
	
}
